#ifndef __MESSAGE__
#define __MESSAGE__

#include <iostream>
#include <string>
#include <thread>

#include "util.cpp"

namespace log_p
{
    struct message
    {
        time_t _time;              // 日志时间戳
        int _log_level;            // 日志等级
        std::string _file_name;    // 日志设置文件
        size_t _file_line;         // 日志设置行
        std::string _thread_id;    // 当前线程ID
        std::string _message_body; // 用户自定义日志体
        std::string _log_method;   // 日志器名称(同步，还是异步)

        message(int level, const std::string log_method, const std::string &body = "",
                std::string file_name = __FILE__, size_t file_line = __LINE__,
                time_t time = log_p::UTIL::TIME::GetTime())
            : _log_level(level), _message_body(body), _log_method(log_method)
        {
            _time = time;
            _file_name = file_name;
            _file_line = file_line;
            std::ostringstream oss;
            oss << std::this_thread::get_id();
            _thread_id = oss.str();
        }
    };
}

#endif